"""
购物：
        1.用户的账户里有钱
        2.用户可推一个空的购物车进商场
        3.开始购物，将自己想要的商品添加购物车
        4.打印购物小条

程序和数据流程梳理分析：
购前：
 钱要有：money
 有足够商品：列表来存储list
 有购物车：列表list

购中：
是否有这个商品：
有
钱够不够：
够：
添加到购物车！
钱减去商品价格！
恭喜，购买成功！您的卡余额还剩xxx
不够：
穷鬼，钱不够！请到其他超市购买！
        没有：
            没有这个商品，别瞎弄！
        购后：
        输入Q，q: 退出：
        打印购物小条！
"""

money = 1000
cart = []
store = [
    ['苹果', 3],
    ['香蕉', 5],
    ['牙刷', 7],
    ['果汁', 10],
    ['毛巾', 12],
    ['电脑',5000],
    ['耳机',200]
]
print("欢迎来到购物系统！")
print(f"您的初始余额为：¥{money}")
print("商场商品如下：")
for item in store:
    print(f"{item[0]}: ¥{item[1]}")

while True:
    choice = input("\n请输入要购买的商品名称（输入Q或q退出并结账）：").strip()

    if choice.lower() == 'q':
        print("\n----- 购物小票 -----")
        if cart:
            total_spent = 0
            for item in cart:
                print(f"{item[0]} - ¥{item[1]}")
                total_spent += item[1]
            print(f"总计消费：¥{total_spent}")
            print(f"剩余余额：¥{money}")
        else:
            print("您未购买任何商品。")
        print("感谢您的光临，欢迎下次再来！")
        break

    # 遍历商品列表查找该商品
    found = False
    for item in store:
        if item[0] == choice:
            found = True
            price = item[1]
            if money >= price:
                cart.append(item)
                money -= price
                print(f"添加{choice}到购物车成功！您的卡余额还剩 ¥{money}")
            else:
                print("穷鬼，钱不够！请到其他超市购买！")
            break

    if not found:
        print("没有这个商品，别瞎弄！")

"""
购物系统业务需求V2.0：
1.现在用户在进商场之前需要从10张优惠券中，随机抽取一张优惠券。
比如抽到一个空凋的8折优惠券，后面在购物的过程中，空凋就可以按照8折后的价格来购买。
2.优化购物小条的人性化打印。
	购物时间，卡余额，购物数量，购买总商品的价值。
3.添加退货功能。在购买途中，某个商品不要了，退回到购物架中！
"""
import random
from datetime import datetime

money = 1000
cart = []

store = [
    ['苹果', 3],
    ['香蕉', 5],
    ['牙刷', 7],
    ['果汁', 10],
    ['毛巾', 12],
    ['电脑', 5000],
    ['耳机', 200]
]

# 优惠券池：商品名 + 折扣率
coupons = [
    ['苹果', 0.8],
    ['香蕉', 0.9],
    ['牙刷', 0.7],
    ['果汁', 0.85],
    ['毛巾', 0.95],
    ['电脑', 0.75],
    ['耳机', 0.9]
]

# 随机抽券
selected_coupon = random.choice(coupons)
coupon_item = selected_coupon[0]
coupon_discount = selected_coupon[1]
print(f"🎉 您抽到了一张【{coupon_item}】的 {int(coupon_discount * 10)} 折优惠券！")

print("\n欢迎来到购物系统V2.0！")
print(f"您的初始余额为：¥{money}")
print("商场商品如下：")
for item in store:
    print(f"{item[0]}: ¥{item[1]}")

while True:
    choice = input("\n请输入要购买的商品名称，或输入 T/t 退货，Q/q 结账：").strip()

    if choice.lower() == 'q':
        print("\n----- 🧾 购物小票 -----")
        print("购物时间：", datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
        if cart:
            total_items = len(cart)
            total_spent = sum(item[2] for item in cart)
            total_original = sum(item[1] for item in cart)
            for item in cart:
                print(f"{item[0]} - 原价: ¥{item[1]} 实付: ¥{item[2]}")
            print(f"\n商品数量：{total_items} 件")
            print(f"总原价：¥{total_original}")
            print(f"总优惠后价格：¥{total_spent}")
            print(f"卡内余额：¥{money}")
        else:
            print("您未购买任何商品。")
        print("感谢您的光临，欢迎下次再来！")
        break

    elif choice.lower() == 't':
        if not cart:
            print("购物车是空的，没啥可退的。")
            continue
        print("当前购物车：")
        for i, item in enumerate(cart):
            print(f"{i + 1}. {item[0]} - 实付 ¥{item[2]}")
        try:
            idx = int(input("请输入要退货的商品编号：")) - 1
            if 0 <= idx < len(cart):
                refund = cart[idx][2]
                money += refund
                print(f"已退货：{cart[idx][0]}，返还 ¥{refund}，当前余额 ¥{money}")
                cart.pop(idx)
            else:
                print("退货编号无效。")
        except ValueError:
            print("请输入有效数字编号。")
        continue

    # 正常购物逻辑
    found = False
    for item in store:
        if item[0] == choice:
            found = True
            price = item[1]
            # 判断是否有该商品的优惠券
            if choice == coupon_item:
                final_price = round(price * coupon_discount, 2)
            else:
                final_price = price

            if money >= final_price:
                cart.append([choice, price, final_price])
                money -= final_price
                print(f"已添加 {choice} 到购物车！实付 ¥{final_price}，余额 ¥{money}")
            else:
                print("穷鬼，钱不够！请到其他超市购买！")
            break

    if not found:
        print("没有这个商品，别瞎弄！")
